<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title>1.1 信息与编码1 | pansis.io</title>
<link rel="shortcut icon" href="https://github.pansis.site/favicon.ico">
<link href="https://github.pansis.site/styles/main.css" rel="stylesheet">
<link href="//at.alicdn.com/t/c/font_1678829_b85ccgkdqkr.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css" rel="stylesheet">
<link rel="alternate" type="application/rss+xml" title="pansis.io » Feed" href="https://github.pansis.site/atom.xml">
        <meta name="description" content="一、常见进制与转换
**1、**进位计数制是最常见的数制。
**2、R进制：**逢R进一成为R进制。
​     进位基数 ：R，即每个数位 可以出现的数码个数


3、R进制数值大小公式

4、R进制转十进制
直接使用R进制数值大小公式即..." />
        <meta name="keywords" content="计算机组成原理" />
        <!-- OG -->
        <meta property="og:locale" content="zh_CN">
        <meta property="og:title" content="1.1 信息与编码1" />
        <meta property="og:type" content="article" />
        <meta property="og:description" content="一、常见进制与转换
**1、**进位计数制是最常见的数制。
**2、R进制：**逢R进一成为R进制。
​     进位基数 ：R，即每个数位 可以出现的数码个数


3、R进制数值大小公式

4、R进制转十进制
直接使用R进制数值大小公式即...">
        <meta property="og:url" content="https://github.pansis.site/post/1.1 信息与编码1/" />
        <meta property="og:site_name" content="pansis.io">
        <meta property="og:updated_time" content="2024-03-05">
        <meta property="og:image" content="" />
        <meta property="og:image:secure_url" content="">
        <meta property="og:image:alt" content="1.1 信息与编码1">
        <!-- Twitter (post.ejs) -->
        <meta name="twitter:card" content="summary_large_image">
        <meta name="twitter:title" content="1.1 信息与编码1">
        <meta name="twitter:description" content="一、常见进制与转换
**1、**进位计数制是最常见的数制。
**2、R进制：**逢R进一成为R进制。
​     进位基数 ：R，即每个数位 可以出现的数码个数


3、R进制数值大小公式

4、R进制转十进制
直接使用R进制数值大小公式即...">
        <!-- <meta name="twitter:site" content="@WBoy0609">
        <meta name="twitter:creator" content="@WBoy0609"> -->
        <meta name="twitter:image" content="">
</head>

<body>
    <div class="main animated">
        <div class="header animated fadeInDown">
    <div class="site_title_container">
        <div class="site_title">
            <a href="https://github.pansis.site">pansis.io</a>
        </div>
    </div>
    <div class="my_socials">
        
            
        
            
        
            
        
            
        
            
        
            
        
            
        
        <a href="https://github.pansis.site/atom.xml" title="rss" target="_blank"><i class="iconfont icon-rss"></i></a>
    </div>
</div>

    <div class="header_menu">
        
            
                <a href="/" class="menu">首页</a>
            
        
            
                <a href="/tag/GWAaV2nvk/" class="menu">程序设计课程</a>
            
        
            
                <a href="/tag/24hangc" class="menu">比赛</a>
            
        
            
                <a href="/tag/L7r9STb75/" class="menu">Python教程</a>
            
        
            
                <a href="/tags" class="menu">分类</a>
            
        
        <div class="gridea-search-div">
            <form id="gridea-search-form" action="https://github.pansis.site/search/">
                <input class="gridea-search-input" autocomplete="off" spellcheck="false" name="q"/>
            </form>
        </div>
    </div>

            <div class="autopagerize_page_element">
                <div class="content">
                    <div class="post_page">
                        <div class="post animated fadeInDown">
                            <div class="post_title post_detail_title">
                                <h2>
                                    1.1 信息与编码1
                                </h2>
                                <span class="article-info">
                                    2024-03-05, 2683 words, 11 min read
                                </span>
                            </div>
                            <div class="post_content markdown">
                                <p class="md_block">
                                    <span class="md_line md_line_start md_line_end">
                                        <h2 id="一-常见进制与转换">一、常见进制与转换</h2>
<p>**1、**进位计数制是最常见的数制。</p>
<p>**2、R进制：**逢R进一成为R进制。</p>
<p>​     <strong>进位基数</strong> ：R，即每个数位 可以出现的数码个数</p>
<img src="http://cos.pansis.site/202309111020178.png" alt="image-20230911102031077" style="zoom: 50%;" />
<img src="http://cos.pansis.site/202309111020813.png" alt="image-20230911102056779" style="zoom:50%;" />
<p><strong>3、R进制数值大小公式</strong></p>
<img src="http://cos.pansis.site/202309111024355.png" alt="image-20230911102140677" style="zoom:50%;" />
<h4 id="4-r进制转十进制">4、R进制转十进制</h4>
<p>直接使用R进制数值大小公式即可</p>
<img src="http://cos.pansis.site/202309111024997.png" alt="image-20230911102403005" style="zoom:50%;" />
<h4 id="5-十进制转二进制">5、十进制转二进制</h4>
<p>整数的转换:整数连除，取余逆序</p>
<img src="http://cos.pansis.site/202309111027247.png" alt="image-20230911102734209" style="zoom:50%;" />
<p>纯小数的转换：小数连乘，取整顺序</p>
<img src="http://cos.pansis.site/202309111028072.png" alt="image-20230911102819004" style="zoom:50%;" />
<p>十进制转其他进制类似于十进制转二进制。</p>
<h4 id="6-二进制互转八进制">6、二进制互转八进制</h4>
<p>二进制转八进制：</p>
<p>将<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mn>10011010.111101</mn><msub><mo>)</mo><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">(10011010.111101)_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">1</span><span class="mord">0</span><span class="mord">0</span><span class="mord">1</span><span class="mord">1</span><span class="mord">0</span><span class="mord">1</span><span class="mord">0</span><span class="mord">.</span><span class="mord">1</span><span class="mord">1</span><span class="mord">1</span><span class="mord">1</span><span class="mord">0</span><span class="mord">1</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>转 换为八进制数</p>
<img src="http://cos.pansis.site/202309111030109.png" alt="image-20230911103035072" style="zoom: 33%;" />
<img src="http://cos.pansis.site/202309111030455.png" alt="image-20230911103044422" style="zoom:50%;" />
<p>八进制转二进制：</p>
<p>将<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mn>316.54</mn><msub><mo>)</mo><mn>8</mn></msub></mrow><annotation encoding="application/x-tex">(316.54)_8</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">3</span><span class="mord">1</span><span class="mord">6</span><span class="mord">.</span><span class="mord">5</span><span class="mord">4</span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">8</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>转换为二进制数</p>
<img src="http://cos.pansis.site/202309111033493.png" alt="image-20230911103350446" style="zoom:50%;" />
<p>二进制互转十六进制与此类似。</p>
<h4 id="7-八进制互转十六进制">7、八进制互转十六进制</h4>
<p>以二进制位中介进行转换</p>
<h2 id="二-常见术语">二、常见术语</h2>
<h4 id="1-字节-1byte8bit">1、字节 1byte=8bit</h4>
<p>1、8个二进制位构成的一个元组</p>
<p>2、目前计算机数据单位</p>
<h4 id="2-字-1wordn-byte">2、字 1word=n byte</h4>
<p>1、不同CPU计算能力不同，因此其字的大小也不同</p>
<p>2、以MIPS为例，CPU能计算的数据大小为32位，故其字长为32位，4字节</p>
<h4 id="3-最高最低有效位-最高最低有效字节">3、最高/最低有效位、最高/最低有效字节</h4>
<ul>
<li>MSB（Most Significant Bit）：最高有效位，位于最左位</li>
<li>LSB（Low Significant Bit）：最低有效位，位于最右边位</li>
<li>MSB（Most Significant Byte）：最高有效字节，位于数据的最左 边的字节</li>
<li>LSB（Least Significant Byte）：最低有效自己，位于数据的最右边 的字节</li>
</ul>
<img src="http://cos.pansis.site/202403041952076.png/abc123" alt="image-20240304195213035" style="zoom:50%;" />
<h2 id="三-整数的二进制表示">三、整数的二进制表示</h2>
<h4 id="1-数的编码空间和编码个数">1、数的编码空间和编码个数</h4>
<p>例子：3位十进制</p>
<p>◆编码空间：000，001，…，999</p>
<p>◆编码个数：1000</p>
<h4 id="2-原码-反码-补码-移码">2、原码、反码、补码、移码</h4>
<ul>
<li>
<p><strong>原码：</strong> 符号位在前，0表示正数，1表示负数，数值位跟随符号位后面。</p>
</li>
<li>
<p><strong>反码：</strong> 正数的反码为其本身</p>
<p>​           负数的反码通过其数值位逐位取反得到</p>
</li>
<li>
<p><strong>补码：</strong> 正数的补码为其本身</p>
<p>​            负数的补码是其绝对值的原码取反加一。</p>
</li>
<li>
<p>**移码：**编码数的原码等于原数+<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mn>2</mn><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup></mrow><annotation encoding="application/x-tex">2^{n-1}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8141079999999999em;vertical-align:0em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span></span></span></span></span></span></span></span></p>
</li>
</ul>
<img src="http://cos.pansis.site/202405272024458.png/abc123" alt="image-20240527201841248" style="zoom:50%;" />
<h4 id="3-原码">3、原码</h4>
<p>1、方案：符号位在前，0表示正数，1表示负数，数值位跟随符号位后面。</p>
<p>2、缺陷</p>
<ul>
<li>存在2个零，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>000</mn><msub><mn>0</mn><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">0000_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.79444em;vertical-align:-0.15em;"></span><span class="mord">0</span><span class="mord">0</span><span class="mord">0</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>100</mn><msub><mn>0</mn><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">1000_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.79444em;vertical-align:-0.15em;"></span><span class="mord">1</span><span class="mord">0</span><span class="mord">0</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.30110799999999993em;"><span style="top:-2.5500000000000003em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> ，浪费有效编码</li>
<li>编码数值不连续 ，硬件无法使用统一的加法 ，应希望数值随编码增大而增大</li>
</ul>
<h4 id="4-补码">4、补码</h4>
<p>1、方案（以5位二进制补码为例）</p>
<ul>
<li>最高位代表符号位：0～正，1～负</li>
<li>10000代表最小的负数（-16），11111代表最大的负数（-1）</li>
</ul>
<figure data-type="image" tabindex="1"><img src="http://cos.pansis.site/202403041945082.png/abc123" alt="image-20240304194344712" loading="lazy"></figure>
<p>2、特点</p>
<ul>
<li>只有1个零</li>
<li>符号确定后，数值随编码增长而增长</li>
</ul>
<p>3、二进制补码的一般性表示</p>
<figure data-type="image" tabindex="2"><img src="http://cos.pansis.site/202403041945937.png/abc123" alt="image-20240304194542887" loading="lazy"></figure>
<p>4、n位二进制补码表示的范围为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>−</mo><msup><mn>2</mn><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow></msup><mo>∼</mo><msup><mn>2</mn><mi>n</mi></msup><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">-2^{n-1}\sim 2^n-1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.897438em;vertical-align:-0.08333em;"></span><span class="mord">−</span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">∼</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.747722em;vertical-align:-0.08333em;"></span><span class="mord"><span class="mord">2</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.664392em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathdefault mtight">n</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">1</span></span></span></span></p>
<p>5、补码体系的优势：只需要设计加法运算的硬件，减法 可以转换为加法运算，故不需为减法设计相应硬件</p>
<h2 id="四-浮点数的二进制表示">四、浮点数的二进制表示</h2>
<h4 id="0-定点数">0、定点数</h4>
<ul>
<li>定义：小数点位置固定的数</li>
<li>通常将定点数表示成纯小数或纯整数
<ul>
<li>定点小数：小数点在最高位数值位前，绝对值小于1</li>
<li>定点整数：小数点在最低位数值位后，没有小数部分</li>
<li>带有整数和小数部分的数使用浮点数</li>
</ul>
</li>
</ul>
<h4 id="1-科学计数法">1、科学计数法</h4>
<p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>5230</mn><mo>=</mo><mn>5.23</mn><mo>×</mo><mn>1</mn><msup><mn>0</mn><mn>3</mn></msup></mrow><annotation encoding="application/x-tex">5230=5.23×10^3</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">5</span><span class="mord">2</span><span class="mord">3</span><span class="mord">0</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2777777777777778em;"></span></span><span class="base"><span class="strut" style="height:0.72777em;vertical-align:-0.08333em;"></span><span class="mord">5</span><span class="mord">.</span><span class="mord">2</span><span class="mord">3</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222222222222222em;"></span></span><span class="base"><span class="strut" style="height:0.8141079999999999em;vertical-align:0em;"></span><span class="mord">1</span><span class="mord"><span class="mord">0</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141079999999999em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span></span></span></span></span></span></span></span></p>
<ul>
<li>尾数（mantissa，M）：5.23</li>
<li>基数（base，B）：10 （10进制）</li>
<li>指数（阶码）（exponent，E）：3</li>
</ul>
<h4 id="2-优化前的浮点数格式">2、优化前的浮点数格式</h4>
<figure data-type="image" tabindex="3"><img src="http://cos.pansis.site/202403041954922.png/abc123" alt="image-20240304195445876" loading="lazy"></figure>
<h4 id="3-优化后的浮点数格式">3、优化后的浮点数格式</h4>
<p>1、优化方案</p>
<ul>
<li>科学记数法通常不会让0出现在尾数的第1位（即小数点左边那 位），由于尾数的第1位只能为1，那么就没有必要再占用实际存储位。</li>
<li>在计算过程中还需要将该位自动补回</li>
</ul>
<p>2、实例</p>
<img src="http://cos.pansis.site/202403041956610.png/abc123" alt="image-20240304195656534" style="zoom:50%;" />
<h4 id="4-表示指数小于0的浮点数">4、表示指数小于0的浮点数</h4>
<p>1、方案：指数采用二进制补码</p>
<figure data-type="image" tabindex="4"><img src="http://cos.pansis.site/202403042002419.png/abc123" alt="image-20240304200216372" loading="lazy"></figure>
<p>2、缺陷：负指数的浮点数虽较小，但其二进制却似乎是个较大的数</p>
<p>3、解决方法：偏阶计数法</p>
<h4 id="5-偏阶计数法">5、偏阶计数法</h4>
<p>1、方案：编码用的指数=真实指数+127（取决于位数）</p>
<p>2、示例</p>
<figure data-type="image" tabindex="5"><img src="http://cos.pansis.site/202403042004168.png/abc123" alt="image-20240304200434121" loading="lazy"></figure>
<h2 id="五-单双精度浮点数和特殊数">五、单双精度浮点数和特殊数</h2>
<p>单双精度浮点数均采用偏阶记数法</p>
<h4 id="1-单精度浮点">1、单精度浮点</h4>
<p>1、位数：32位</p>
<figure data-type="image" tabindex="6"><img src="http://cos.pansis.site/202403042006967.png/abc123" alt="image-20240304200602922" loading="lazy"></figure>
<p>2、表示范围</p>
<img src="http://cos.pansis.site/202403042006879.png/abc123" alt="image-20240304200656817" style="zoom:50%;" />
<h4 id="2-双精度浮点">2、双精度浮点</h4>
<p>1、位数：64位</p>
<p>总位数64位，符号位1位，指数位11位，尾数位52位</p>
<p>2、范围</p>
<img src="http://cos.pansis.site/202403042008692.png/abc123" alt="image-20240304200810653" style="zoom:50%;" />
<h4 id="3-特殊情况">3、特殊情况</h4>
<img src="http://cos.pansis.site/202403042010030.png/abc123" alt="image-20240304201018985" style="zoom:50%;" />
<p>1、上溢</p>
<ul>
<li>当结果A的绝对值超过浮点数编码表示的最大值时，发生上溢。</li>
<li>上溢会被舍为$\pm \infty $</li>
</ul>
<p>2、下溢</p>
<ul>
<li>当结果A的绝对值小于浮点数编码表示的最小值时，发生下溢。</li>
<li>下溢会被舍为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>0</mn></mrow><annotation encoding="application/x-tex">0</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.64444em;vertical-align:0em;"></span><span class="mord">0</span></span></span></span></li>
</ul>
<h2 id="六-补码的运算">六、补码的运算</h2>
<h4 id="1-取反-加法-减法">1、取反、加法、减法</h4>
<p>略</p>
<h4 id="2-位扩展">2、位扩展</h4>
<p>1、有符号扩展</p>
<p>根据符号位来扩展高位，是0就扩展0，是1就扩展1</p>
<p>2、无符号扩展</p>
<p>全部扩展为0</p>
<h4 id="3-比较">3、比较</h4>
<p>1、比较种类（均可由小于和等于实现）</p>
<table>
<thead>
<tr>
<th>比较</th>
<th>A=B</th>
<th>A&lt;B</th>
<th>A!=B</th>
<th>A&gt;B</th>
<th>A&gt;=B</th>
<th>A&lt;=B</th>
</tr>
</thead>
<tbody>
<tr>
<td>等价运算</td>
<td>A=B</td>
<td>A&lt;B</td>
<td>~(A=B)</td>
<td>B&lt;A</td>
<td>~(A&lt;B)</td>
<td>~(B&lt;A)</td>
</tr>
</tbody>
</table>
<p>2、小于运算（有符号）</p>
<p>比较A&lt;B流程：</p>
<ul>
<li>A和B的补码均扩展1位符号位（防止减法溢出）</li>
<li>执行减法，即C=A-B</li>
<li>判断C的符号位
<ul>
<li>如果为1，则C&lt;0，即A&lt;B为真</li>
<li>如果为0，则C&gt;=0，即A&lt;B为假</li>
</ul>
</li>
</ul>
<figure data-type="image" tabindex="7"><img src="http://cos.pansis.site/202403042027956.png/abc123" alt="image-20240304202702897" loading="lazy"></figure>
<p>3、小于运算（无符号）</p>
<p>比较A&lt;B流程：</p>
<ul>
<li>A和B的补码均扩展1位0（防止减法溢出）</li>
<li>执行减法，即C=A-B</li>
<li>判断C的符号位
<ul>
<li>如果为1，则C&lt;0，即A&lt;B为真</li>
<li>如果为0，则C&gt;=0，即A&lt;B为假</li>
</ul>
</li>
</ul>
<p>4、等于</p>
<p><strong>方案一</strong>：采用XOR运算，然后判断结果是否全0</p>
<ul>
<li>执行XOR运算，即C=A⊕B</li>
<li>将C的各位OR起来，得到1位结果
<ul>
<li>如果为0，即“A=B”为真</li>
<li>如果为1，即“A=B”为假</li>
</ul>
</li>
</ul>
<p><strong>方案二</strong>：采用减法运算，然后判断结果是否全0</p>
<ul>
<li>
<p>执行减法运算，即C=A-B</p>
</li>
<li>
<p>将C的各位OR起来，得到1位结果</p>
<ul>
<li>
<p>如果为0，即“A=B”为真</p>
</li>
<li>
<p>如果为1，即“A=B”为假</p>
</li>
</ul>
</li>
</ul>
<h4 id="4-乘法无符号">4、乘法（无符号）</h4>
<figure data-type="image" tabindex="8"><img src="http://cos.pansis.site/202403042030078.png/abc123" alt="image-20240304203015008" loading="lazy"></figure>
<h4 id="5-乘法有符号">5、乘法（有符号）</h4>
<img src="http://cos.pansis.site/202403042030965.png/abc123" alt="image-20240304203048900" style="zoom:50%;" />
<h4 id="6-除法无符号">6、除法（无符号）</h4>
<p>1、基本方法：试商</p>
<ul>
<li>在二进制除法中，商的各位非0即1。</li>
<li>计算商的每位时，仅需做一次减法 ，然后根据减法结果的符号位判断是否够减</li>
</ul>
<p>2、例</p>
<img src="http://cos.pansis.site/202403042037047.png/abc123" alt="image-20240304203748987" style="zoom:50%;" />
<p>3、实例</p>
<p>中间余数：假设除数为N位，则中间余数为N+1位</p>
<figure data-type="image" tabindex="9"><img src="http://cos.pansis.site/202403042039162.png/abc123" alt="image-20240304203937085" loading="lazy"></figure>
<h4 id="7-除法有符号">7、除法（有符号）</h4>
<p>1）获得被除数、除数的绝对值</p>
<p>2）执行两者绝对值的除法，得到商和余数</p>
<p>3）商的符号：由被除数与除数的符号决定，即同号为正、异号为负</p>
<p>4）余数的符号：与被除数的符号相同</p>
<p>寄存器由触发器构成</p>
<p>计组中，</p>
<p>寄存器边沿触发</p>
<p>触发器电平触发</p>
<p><a href="https://www.baidu.com/s?wd=%E7%8A%B6%E6%80%81%E6%9C%BA&amp;tn=25017023_2_dg&amp;ch=8&amp;usm=2&amp;ie=utf-8&amp;rsv_pq=f2adeb6000094455&amp;oq=%E7%8A%B6%E6%80%81%E6%9C%BA%E5%88%86%E7%B1%BB&amp;rsv_t=4227XGkrAOctNZrjERfD%2B7V1HpH6cVLRRtWHXNpeofWC5DznMdISkzMjFSATtdZfJOTaHw&amp;sa=re_dqa_zy&amp;icon=1">状态机<em></em></a>是数字系统中的核心部件，广泛应用于电路设计、FPGA程序设计以及软件设计等领域。根据不同的分类标准，状态机可以分为以下几类：</p>
<ol>
<li><a href="https://www.baidu.com/s?wd=%E6%9C%89%E9%99%90%E7%8A%B6%E6%80%81%E6%9C%BA&amp;tn=25017023_2_dg&amp;ch=8&amp;usm=2&amp;ie=utf-8&amp;rsv_pq=f2adeb6000094455&amp;oq=%E7%8A%B6%E6%80%81%E6%9C%BA%E5%88%86%E7%B1%BB&amp;rsv_t=3965TJPNEFo%2FFDDZnIBq3IuVwE8gi6VwVCxB6IPNFoZhZLR6qm6z2UGwk9D7Jp72AgRD7g&amp;sa=re_dqa_zy&amp;icon=1">有限状态机<em></em></a> (FSM, Finite State Machine)：
<ul>
<li>有限状态机指的是具有有限个状态的状态机。</li>
<li>当接收到外部输入信号时，状态机会根据当前状态和输入信号综合考虑，从而跳转到下一个状态。</li>
<li>状态机的三个关键点是：当前状态、外部输入、下一个状态。</li>
</ul>
</li>
<li>[Moore 型状态机<em></em>](https://www.baidu.com/s?wd=Moore 型状态机&amp;tn=25017023_2_dg&amp;ch=8&amp;usm=2&amp;ie=utf-8&amp;rsv_pq=f2adeb6000094455&amp;oq=状态机分类&amp;rsv_t=3965TJPNEFo%2FFDDZnIBq3IuVwE8gi6VwVCxB6IPNFoZhZLR6qm6z2UGwk9D7Jp72AgRD7g&amp;sa=re_dqa_zy&amp;icon=1)：
<ul>
<li>Moore 型状态机的输出只与当前状态有关，不受输入信号的影响。</li>
<li>输入信号在这里主要起到激励作用，而不是直接改变状态机的输出。</li>
</ul>
</li>
<li>[Mealy 型状态机<em></em>](https://www.baidu.com/s?wd=Mealy 型状态机&amp;tn=25017023_2_dg&amp;ch=8&amp;usm=2&amp;ie=utf-8&amp;rsv_pq=f2adeb6000094455&amp;oq=状态机分类&amp;rsv_t=3965TJPNEFo%2FFDDZnIBq3IuVwE8gi6VwVCxB6IPNFoZhZLR6qm6z2UGwk9D7Jp72AgRD7g&amp;sa=re_dqa_zy&amp;icon=1)：
<ul>
<li>Mealy 型状态机的输出不仅与当前状态有关，还与输入信号有关。</li>
<li>输入信号在这里既起到激励作用，也直接参与到状态机的输出中。</li>
</ul>
</li>
</ol>
<p><a href="https://www.baidu.com/s?ch=8&amp;tn=25017023_2_dg&amp;wd=Moore%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA&amp;usm=1&amp;ie=utf-8&amp;rsv_pq=e703a0e500090891&amp;oq=moore%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA%E5%92%8Cmealy%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA%E7%9A%84%E5%8C%BA%E5%88%AB&amp;rsv_t=5084b%2BhH2R4xGxmktueiC49g9iyiUND1dF%2FZ00HruGAAvpneEwj8V0deHaVG%2FOYMasKhJg&amp;sa=re_dqa_zy&amp;icon=1">Moore型状态机<em></em></a>（Moore Machine）和<a href="https://www.baidu.com/s?ch=8&amp;tn=25017023_2_dg&amp;wd=Mealy%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA&amp;usm=1&amp;ie=utf-8&amp;rsv_pq=e703a0e500090891&amp;oq=moore%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA%E5%92%8Cmealy%E5%9E%8B%E7%8A%B6%E6%80%81%E6%9C%BA%E7%9A%84%E5%8C%BA%E5%88%AB&amp;rsv_t=98e6RZyhCdKXITFgTOuiBg7Gt0PB6OBagK8pK3wxvVTKUK1JYJN%2BJO2dGSq1A%2BuRgxR5ag&amp;sa=re_dqa_zy&amp;icon=1">Mealy型状态机<em></em></a>（Mealy Machine）的主要区别在于它们输出信号的产生方式。</p>
<ol>
<li>
<p>输出只与当前状态有关：Moore型状态机的输出仅取决于当前的状态，而与输入信号的当前值无关。这意味着，如果状态机处于某个状态，并且输入保持不变，那么输出也将保持不变。Moore型状态机的输出信号是直接由状态寄存器译码得到的，因此它们属于同步输出状态机。123456</p>
</li>
<li>
<p>输出与当前状态和输入都有关：Mealy型状态机的输出不仅取决于当前状态，还与输入信号的当前值有关。这意味着，状态机的输出是输入信号和当前状态共同作用的结果。Mealy型状态机的输出信号是输入和状态变量的函数，因此它们属于异步输出状态机。</p>
</li>
<li>
<p>时序特性：Moore型状态机的输出在时钟边沿变化，总是在一个周期后发生。而Mealy型状态机的输出则可以随时发生变化，不依赖于时钟。在Mealy型状态机中，输入的更改可能会在逻辑完成后立即导致输出更改，这可能会导致异步反馈问题。78</p>
</li>
<li>
<p>安全性：Moore型状态机通常被认为更安全，因为它们的输出变化总是在时钟边沿之后，而Mealy型状态机则可能在逻辑完成后立即导致输出变化。</p>
</li>
<li>
<p>逻辑复杂度：在相同的周期内，Mealy型状态机对输入的反应更快，因为它们的输出函数是由输入和状态变量共同决定的，而Moore型状态机的输出函数只由状态变量决定。这可能导致Moore型状态机在时钟边沿之后需要更多的门延迟。</p>
</li>
</ol>
<br />
                                            
                                </p>
                            </div>
                            <div class="post_footer">
                                
                                    <div class="meta">
                                        <div class="info"><span class="field tags"><i class="iconfont icon-tag-sm"></i>
                                                
                                                    <a href="https://github.pansis.site/tag/jsjzcyl/" class="article-info">
                                                        计算机组成原理
                                                    </a>
                                                    
                                            </span>
                                        </div>
                                    </div>
                                    
                                        
                            </div>
                        </div>
                        
                            
                                <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<div id="gitalk-container" style="padding-bottom: 20px;"></div>
<script>
    var pageId = (location.pathname).substring(1, 49) // Ensure uniqueness and length less than 50
    pageId = pageId.endsWith('/') ? pageId.slice(0, -1) : pageId // 以斜杠结尾则去除
    var gitalk = new Gitalk({
        clientID: '9d5eba33618472c44a07',
        clientSecret: '065a85ed04333ceebfc4f01d7ca1674175730339',
        repo: 'fzxl2003.github.io',
        owner: 'fzxl2003',
        admin: ['fzxl2003'],
        id: pageId,
        distractionFreeMode: false  // Facebook-like distraction free mode
    })
    gitalk.render('gitalk-container')
</script>
                                    
                                        
                                                    
                    </div>
                </div>
            </div>
    </div>
    <div class="footer">
    
    <div class="powered_by">
        <a href="https://codeberg.org/kytrun/gridea-theme-one" target="_blank">Theme One,</a>
        <a href="https://open.gridea.dev/" target="_blank">Powered by Gridea&#65281;</a>
    </div>
    
    
        <div class="footer_slogan">
            Powered by <a href="https://github.com/getgridea/gridea" target="_blank">Gridea</a>
        </div>
    
    <div id="back_to_top" class="back_to_top">
        <span>△</span>
    </div>
    
</div>

<script src="https://github.pansis.site/media/scripts/util.js"></script>
        <link rel="stylesheet" href="//unpkg.com/@highlightjs/cdn-assets@11.5.1/styles/default.min.css">
        <script src="//unpkg.com/@highlightjs/cdn-assets@11.5.1/highlight.min.js"></script>
        <script>hljs.highlightAll();</script>
</body>

</html>